// 字面量类型声明
var a;
a = 10;
// 联合类型
var b;
var c;
c = true;
c = 'hello';
// 关闭当前变量的ts
// 显示any
var d;
// 隐式any
// let d;
d = 10;
d = 'hello';
d = true;
// 未知类型
var e;
e = 10;
e = 'hello';
e = true;
// d的类型是any,可以赋值给任意变量
var s;
s = d;
// unknown实质是类型安全的any 不能直接赋值给其他变量 要判断类型再赋值
// e = 'hello';
// s = e 
// 判断类型再赋值
if (typeof e === "string") {
    s = e;
}
// 类型断言 告诉解析器变量的实际类型
s = e;
s = e;
// 函数没有返回值或undifined
function aa() {
    console.log(1);
}
// never 永远没有返回结果
function bb() {
    throw new Error('报错了');
}
// 基础数据类型
var msg = 'hello';
msg = '1';
var num = 0;
num = 2;
var flag = false;
flag = true;
var isFlag = false;
isFlag = true;
// 引用数据类型
var arr = [];
arr.push('hello');
var arr1 = [
    ['hello', 'world'],
    ['hello', 'world'],
    ['hello', 'world'],
    ['hello', 'world']
];
var data = [];
data.push({
    id: 1,
    name: '1',
    age: 35,
    sayHi: function (a) {
        return 123;
    }
});
data.push({
    id: 2,
    name: 'lili',
    sayHi: function (a) {
        return 123;
    }
});
// 函数
function fn(msg) {
    console.log(msg);
    return 1;
}
// 泛型
function f1(a) {
    var xx = a;
    return xx;
}
var res = f1({
    id: 1,
    name: 'zs'
});
